The signals broadcast by the satellites of a Satellite Positioning System (SPS) can be used to locate a mobile station (MS), either directly by the MS itself, or with the assistance of a remote terminal which also receives the signals. Satellite Positioning Systems include the Global Positioning System (GPS), Glonass, Galileo and several other similar systems which use satellites, which may be augmented by ground-based equivalent transmissions, to provide ranging signals and information concerning the location and trajectory of each transmitter. The ranging signal within an SPS design takes the form of signal which is coded in order to perform two functions. The first of these is the provision of a unique identifier for each satellite using a code sequence unique to that satellite. Individual satellites may thus be distinguished from one another. Code sequences for a given SPS constellation of satellites typically belong to a common family. One such family, in widespread use in GPS, is known as the CA code and is transmitted on a frequency of 1575.42 MHz (known as L1) in the L-band. This family has been derived using a code construction method first published by Robert Gold (and known as Gold Codes).
The second function of the encoding of the signal is to spread the spectrum of the transmission. This allows continuous transmission (and hence maximum energy per second) of signals from the satellite whilst simultaneously providing a signal with a narrow auto-correlation function, giving good ranging accuracy.
Members of the CA code used in GPS share certain common characteristics. These include a common architecture for code generation involving the use of two shift registers to form two preferred linear feedback shift register (LFSR) sequences from which the members of the Gold Code family are formed by modulo-two addition. Gold's publications shows how preferred pairs of sequences are identified. Individual families are formed by the control of the relative starting positions of the two LFSR sequences with all possible delays. Each CA code sequence has a different relative starting position of the two LFSR sequences. Often only a sub-set of the available sequences from a family are used. In the case of GPS, 38 members of the Gold Code family have been selected for transmission by the satellite constellation, or for use in testing of the satellites prior to launch, or for use in ‘pseudo-lites’ (the ground-based equivalents of satellites).
Sequences from finite state machines, such as those using shift registers to generate sequences (using a linear feedback method or otherwise), have only a finite number of elements prior to a repetition of the code. Other techniques for code generation may be used which do not employ the direct re-generation of the code. One such technique is to store all elements of the sequence in a memory device. The satellite then simply recalls each element of the sequence from memory prior to transmission and then transmits the sequence. When the end of the sequence as stored in memory is detected, the sequence pointer returns to the start of the sequence so that the next element transmitted is the first element, and the sequence is repeated.
In practice, therefore, the transmission of the code is repeated continuously. In GPS, the CA code is repeated every millisecond. The length of the code for each satellite is a feature of the code family characteristics and is 1023 elements (210-1), being generated using shift registers with 10 storage elements. The CA codes are transmitted at a rate of 1.023×106 code elements per second. Other SPS transmissions use different code characteristics. One example is the GPS transmission on 1176.45 MHz (known as L5) which uses a code length of 10230 elements transmitted at a rate of 10.23×106 code elements per second.
Most Earth-orbiting satellites used for navigation, such as GPS, reside in Medium Earth Orbits located typically in the range 15,000 to 30,000 km above the Earth's surface. GPS satellites have orbital heights of approximately 20,000 km whilst the Galileo Satellite System uses higher orbits of approximately 24,000 km. The time for signals to travel from the satellite in orbit to a receiver located on the Earth's surface depends for the most part on the distance between satellite and receiver. In the case of GPS, the travel times lie in the range 65 ms to 80 ms. Consequently, the ranging code transmitted from the satellite does not enable an SPS receiver to determine uniquely the range to the satellite because there are always many repetitions of the ranging code (65 to 80 for GPS) in transit along the transmission path between satellite and a receiver located on the Earth's surface.
The signals from all the satellites in a typical SPS are transmitted on the same frequency. The SPS receiver uses correlation techniques to select one specific satellite signal from all those received at the receiver's location. This is well known as code division multiple access (CDMA). There are many techniques which the receiver may use to mechanise the correlation process but the conceptual basis is common. This may be described by steps of generating a replica of the desired satellite code sequence and, having a receiver tuned to the correct signal frequency including any Doppler frequency offset, finding the correct time alignment of the SPS receiver's internal replica code with that received directly from the selected satellite. This process may be conducted either in the time or frequency domain, recognising that convolution in the time domain corresponds to multiplication in the frequency domain (and vice versa). The starting point of the receiver's replica code (known as the code epoch), when aligned with the same received code sequence, is measured with reference to a time held in a clock local to the receiver. The starting points thereby observed change in increments of the code sequence length, with small adjustments for the relative motion of user and satellite. For the GPS CA code signal, the code starting points increment in steps of 1 ms. A measurement of the time of the code epoch in the receiver, computed modulo 1 ms, is known as the ‘pseudo-range’ for the selected satellite.
The pseudo-range measurement contains a number of errors including the receiver and satellite clock time biases with respect to the GPS reference clock. In addition to these errors, the time of reception of the satellite code includes the transit time of the signals from satellite to receiver. The transit time is the propagation time of radio waves over the distance between satellite and receiver. These waves, for the most part, may be assumed to propagate as if in free space with but with corrections for the extra delay caused by the lower propagation speed in the ionospheric and tropospheric portions of the signal path. Since the transit time of the signals is longer than a code repetition interval, many complete code sequences are simultaneously in transit between satellite and the receiver. The measurement of range to the satellite cannot be directly determined because of the undetermined quantities and the many code repetition intervals in the signal transit time.
A method of determining uniquely the range to the satellite requires the reception of a data signal from the satellite which contains information concerning the time of transmission of the signal from the satellite with respect to the SPS time reference. The data signal can only be received at signal levels which do not permit significant attenuation along the signal path. Where such data signals may be received, the SPS receiver must first acquire carrier signal phase lock, data bit synchronisation, data word synchronisation and message synchronisation prior to the decoding of sufficient message data to determine the transmission time of a specific code epoch. The duration of the receiver processing may easily exceed the limited time available to make a determination of the exact range to the satellite.
In the prior art as practiced, it is known that the estimation of the range to each satellite is an iterative process. This is because of the existence of multiple location solutions depending upon the assumptions made about how many code sequences are in transit from each satellite to the receiver. When there is a minimum number of measurements—four is just sufficient for a full location solution—the computation will yield a valid solution for any choice of the number of code sequences in transit, leading to an arbitrarily large number of solutions. Most of these solutions can be rejected because the locations are not possible, for example placing the receiver below the surface of the Earth. However, many solutions typically remain which are both physically possible and mathematically correct. Only one of these can be the true solution.
A method of resolving the ambiguity, which is used by many navigation processors, is to continue to accumulate further measurements of pseudo-range to the four visible satellites. The resulting locations derived from these measurements, depending upon the estimates of the number of code sequences in transit, fall into two categories. Many of the location solutions are inconsistent with previous ones using the same code sequence estimates, for example requiring the receiver to move impossibly fast or to have an clock bias outside the limits of probability. Still some solutions remain viable, however, but they become more refined as further SPS satellite pseudo-range measurements are collected. After a sufficient period of data collection, only one solution continues to satisfy the tests of reasonableness, and is finally accepted as the correct solution. The process may take many tens of seconds or minutes to complete, which may be too long for the needs of the application.
When there are more than four satellites visible, and hence more than four SPS pseudo-ranges can be measured, a consistency test can be applied to the multiplicity of potential location solutions. This assists in the rapid elimination of many, but usually not all, incorrect solutions. The process described above may be used, but the length of time required can be less than with just four satellites.
In the case where a previous location solution is already present in the SPS receiver, the process of location determination can be made more rapidly. This depends in part upon the confidence that can be placed in the stored location. One such confidence measure is the age of the solution. Another measure of confidence is associated with how close one possible solution is to the stored value.
US20040212530 describes techniques, in use in the art since 1986, for overcoming the integer millisecond ambiguity problem by using an iterative method. US20040212530 makes ranging measurements to the mobile terminal, a computation using the broadcast satellite ephemeredes and satellite clock correction coefficients, and an estimate of the position of the mobile terminal.
U.S. Pat. No. 6,408,178 describes the provision of assistance data based on knowledge of the location of a spot beam of a satellite communication system, for the purpose of limiting the number of ambiguous solutions which have to be resolved by trial and error.
EP1336864 describes a technique similar to that of US20040212530, and which requires that the position of the satellite positioning receiver be known within 150 km and its clock error within a few seconds.
Another technique for solving the problem of determining the number of code sequences in transit is to make further measurements on the SPS received signals. One such approach as taught in U.S. Pat. No. 6,433,731 and U.S. Pat. No. 6,597,311 is to make both pseudo-range and Doppler measurements to 5 or more SPS satellites.
The present invention aims to solve the problem outlined above of the determination or provision of the coarse distance between SPS satellite and receiver. This is achieved without the use of more than the minimum number of satellites, or the measurement or provision of SPS satellite Doppler information, or the reception or decoding of SPS satellite data. The invention may thereby be beneficially applied to SPS receivers subject to signal blockage (in which the signals are subject to significant attenuation) or to reception regimes in which insufficient time is available to decode the SPS satellite message.